home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 2, No. 07 (1983-03)(Softdisk)(Side B).zip / Softdisk Magazette Volume 2, No. 07 (1983-03)(Softdisk)(Side B).do / HELIOSELENE.bas < prev    next >
BASIC Source File  |  1996-12-24  |  10KB  |  98 lines

  1. 1  HGR : TEXT 
  2. 10  LOMEM: 16380: HOME : TEXT : SPEED= 10: REM   O.I. & JEAN SCHIFRINE
  3. 20  FOR I = 1 TO 40: GOSUB 860: PRINT ".": NEXT : FOR I = 1 TO 12: GOSUB 860: PRINT "*": NEXT : VTAB 11: HTAB 15: PRINT "THEME": VTAB 13: HTAB 10: PRINT "* HELIOSELENE *": VTAB 21: HTAB 7: PRINT "PROFESSEUR A.MOLLOCK FEVRIER 81": GOSUB 730
  4. 30  SPEED= 150: FOR I = 0 TO 8:H =  INT(10 +I *1.4):V = 13 +I: VTAB V: HTAB H: PRINT "*";: HTAB 24: PRINT "*";: HTAB H: PRINT " ";: HTAB 24: PRINT " ";: NEXT : FLASH : HTAB 21: PRINT "*";: HTAB 24: PRINT "*": NORMAL : GOSUB 730
  5. 40  SPEED= 120: DIM M$(12),X(31),Z$(12): FOR I = 0 TO 6: READ J$(I): READ S$(I): NEXT : FOR I = 1 TO 12: READ Z$(I): READ M$(I): NEXT :XO = 140:YO = 80:PL = .212768698:PS = 7.73490243E -04:T2 = 0:H$(0) = ".":H$(2) = "*"
  6. 50  GOSUB 700: PRINT "BONJOUR!": PRINT : INPUT "COMMENT VOUS APPELEZ-VOUS:";W$
  7. 60 ER = 0: PRINT : PRINT : PRINT "QUELLE EST VOTRE DATE DE NAISSANCE?": PRINT : INPUT "JOUR/MOIS/ANNEE:";D$: GOSUB 600: PRINT : PRINT "EST-CE BIEN LE ";J;M$(M);" ";A;"?:";: GOSUB 760: IF R$ < >"O"  THEN  PRINT : PRINT : PRINT "ET BIEN,RECOMMENCONS!": PRINT : PRINT : GOTO 60
  8. 70  PRINT : PRINT : PRINT "BON,PARFAIT,UN UNSTANT S.V.P...": GOSUB 730: GOSUB 730: GOSUB 730
  9. 80  GOSUB 710:K =  INT((((N/7) - INT(N/7)) *7) +.1):QN = N -693512: GOSUB 700: PRINT W$;"!": PRINT : PRINT : PRINT "  JE PEUX DEJA VOUS DIRE QUE:": PRINT : PRINT : PRINT "VOTRE JOUR DE NAISSANCE EST UN ";: FLASH : PRINT J$(K): NORMAL : PRINT :I = 22: IF M = 7  OR M = 11  THEN I = 21
  10. 90  IF M = 3  OR M = 5  OR M = 6  THEN I = 20
  11. 100  IF M = 1  OR M = 2  OR M = 4  THEN I = 19
  12. 110 Z = M: IF J >I  THEN Z = M +1: IF Z >12  THEN Z = 1
  13. 120  PRINT : PRINT "ET QUE VOUS ETES **** ";: FLASH : PRINT Z$(Z);: NORMAL : PRINT " ****": GOSUB 730: GOSUB 730:JN = J:MN = M:AN = A: GOSUB 700: GOTO 150
  14. 130  GOSUB 870: PRINT : PRINT "BRAVO! VOUS ESPEREZ VIVRE CENTENAIRE!": GOSUB 730: GOTO 200
  15. 140  GOSUB 870: PRINT : PRINT "VOUS N'ETIEZ PAS AU MONDE EN ";A;: PRINT "!": GOSUB 730
  16. 150 ER = 1: PRINT : PRINT : PRINT "QUEL EST LE MOIS QUI VOUS INTERESSE?": PRINT : INPUT "NO DU MOIS/ANNEE:";D$:D$ = "1/" +D$: GOSUB 600
  17. 160  IF A <100  THEN A = A +1900
  18. 170  IF A -AN <0  THEN 140
  19. 180  IF A -AN >99  THEN 130
  20. 190  PRINT : PRINT "EST-CE BIEN:";M$(M);" ";A;"? ";: GOSUB 760: IF R$ < >"O"  THEN  PRINT : PRINT : PRINT "ET BIEN RECOMMENCONS!": GOTO 150
  21. 200  PRINT : PRINT : PRINT "BON VOYONS UN PEU...": GOSUB 730: GOSUB 730:J = 1: GOSUB 710:QH = N -693512:MH = M:AH = A:QA = QH -QN: IF T2 = 1  THEN 340
  22. 205  REM ***** GRAPHISMES
  23. 210  GOSUB 700: CALL 62450: VTAB 21: PRINT "THEME HELIOSELENE DU ";JN;M$(MN);" ";AN;:DM =  POS(0) -1: VTAB 22: FOR I = 1 TO DM: HTAB I: PRINT "-";: NEXT : PRINT "-": HGR : HCOLOR= 3: FOR I = 1 TO 50: GOSUB 750: IF U >5500  THEN  HPLOT X,Y
  24. 220  NEXT : FOR I = 1 TO 12: GOSUB 750: IF U >6200  AND X <275  AND X >4  AND Y >5  AND Y <155  THEN  GOSUB 730: GOSUB 740
  25. 230  NEXT I: GOSUB 730:NS = QN: GOSUB 790: FOR DV =  -10 TO 10:DX =  SQR(100 - ABS(DV) ^2): HPLOT XO +DX,YO +DV TO XO -DX,YO +DV: NEXT DV
  26. 240  VTAB 23: INVERSE : PRINT "SOLEIL";: NORMAL : PRINT ":ACTIVITE ";S$(SA);SS$;:NL = QN *PL:SN =  SGN( SIN(NL)):HG =  COS(NL): IF HG >SN  THEN HG = SN
  27. 250  IF  POS(0) <40  AND  POS(0) >0  THEN  PRINT " "
  28. 260  FOR AR = 0 TO 6.28  STEP ST:DV = 12 * SIN(AR):DY = RE * SIN(AR):DG = 12 * COS(AR):DD = RE * COS(AR): HPLOT XO +DV,YO -DG TO XO +DY,YO -DD: NEXT AR:HD =  - COS(NL): IF HD <SN  THEN HD = SN
  29. 270 VL = 65 * COS(NL):HL = 65 * SIN(NL): IF  ABS( SIN(NL/2)) <.06  THEN 290
  30. 280  FOR DV =  -10 TO 10  STEP 2:DX =  SQR(100 - ABS(DV) ^2):DG = DX *HG:DD = DX *HD: HPLOT XO -HL +DG,YO +VL +DV TO XO -HL +DD,YO +VL +DV: NEXT : GOTO 300
  31. 290  FOR DV =  -10 TO 10:DX =  SQR(100 - ABS(DV) ^2): HPLOT XO -HL +DX,YO +VL +DV: HPLOT XO -HL -DX,YO +VL +DV: NEXT 
  32. 300 I = HG +HD:L$ = "NOUVELLE LUNE   ":PP = 4: IF I <1.7  AND I >.3  THEN L$ = "PREMIER QUARTIER":PP = 1
  33. 310  IF I <.3  AND I > -.3  THEN L$ = "PLEINE LUNE    ":PP = 2
  34. 320  IF I < -.3  AND I > -1.7  THEN L$ = "DERNIER QUARTIER":PP = 3
  35. 330 I = 29.53:Q =  INT((QN/I - INT(QN/I)) *I): VTAB 24: INVERSE : PRINT "LUNE";: NORMAL : PRINT ":";L$;: HTAB 25: PRINT "AGE:";Q" JOUR";: IF Q >1  THEN  PRINT "S";
  36. 340  IF  PEEK(49408) = 24  AND  PEEK(48409) = 176  AND  PEEK(49410) = 56  THEN  PR# 1: IF T2 = 0  THEN  PRINT  CHR$(6);: PR# 0
  37. 350  GOSUB 730: GOSUB 730: TEXT : PR# 0: GOSUB 700: SPEED= 120: IF T2 = 1  THEN  VTAB 4: GOTO 420
  38. 355  REM **** TEXTE
  39. 360  PR# 1: PRINT  CHR$(9): VTAB 8: HTAB 5: PRINT W$: PRINT : PRINT "VOICI MES DEDUCTIONS:": PRINT 
  40. 370  PRINT : PRINT "* LE JOUR DE VOTRE NAISSANCE:": PRINT "  --------------------------": PRINT : HTAB 8: PRINT "* ";J$(K);" ";JN;M$(MN);" ";AN;"*": PRINT : PRINT "LE THEME HELIOSELENE ETAIT LE SUIVANT:"
  41. 380  PRINT : PRINT : HTAB 14: INVERSE : PRINT "ZODIAQUE": NORMAL : PRINT : HTAB (16 - LEN(Z$(Z))/2): PRINT "* ";Z$(Z);" *": PRINT 
  42. 390  HTAB 16: INVERSE : PRINT "LUNE": NORMAL : PRINT : HTAB 4: PRINT L$;: HTAB 25: PRINT "AGE:";Q;" JOUR";: IF Q >1  THEN  PRINT "S";
  43. 400 A$ = S$(SA):B$ = SS$:C$ = SC$: PRINT : PRINT : HTAB 15: INVERSE : PRINT "SOLEIL": NORMAL : PRINT : PRINT "ACTIVITE "A$;B$: IF  LEN(C$) >1  THEN  PRINT : HTAB 10: PRINT C$
  44. 410  GOSUB 730: GOSUB 730: GOSUB 730: PRINT : PRINT : PRINT 
  45. 420 MX = MH: GOSUB 820: PR# 1: PRINT : PRINT "* POUR LE MOIS DEMANDE:": PRINT "  --------------------": PRINT 
  46. 430  HTAB 12: PRINT "*";M$(MH);" ";AH;" *": PRINT : HTAB 10: PRINT "VOICI VOS PERIODES FAVORABLES": PRINT : HTAB 18: PRINT "1....1....2....2....3.": PRINT "DATE";: HTAB 9: PRINT "1...5....0....5....0....5....0."
  47. 440  PRINT : PRINT "LUNE";: FOR I = 1 TO DM:H = 1 + SGN( COS((QH +I) *PL -.217 *Q) -.7): HTAB (I +8): PRINT H$(H);:X(I) = H: NEXT 
  48. 450  PRINT : PRINT : PRINT "TETE";:P = .19: GOSUB 850: PRINT : PRINT : PRINT "COEUR";:P = .224399: GOSUB 850: PRINT : PRINT : PRINT "CORPS";:P = .273182: GOSUB 850: PRINT 
  49. 460 M1$ = "":M2$ = M$(MH):DX = 0:DY = 0: PRINT : FOR X = 8 TO 2  STEP  -2: FOR I = 1 TO DM: HTAB (8 +I): IF X(I) > = X  THEN  PRINT "*";: IF X = 8  AND DX = 0  THEN DX = I: GOTO 480
  50. 470  IF X(I) <8  AND DY = 0  AND DX >0  THEN DY = I -1: IF DY = 1  THEN M1$ = M$(MH):M2$ = M$(MH +1)
  51. 480  NEXT : PRINT : NEXT : VTAB  PEEK(37) -1: PRINT "GLOBAL": IF DX = DY  AND DX >0  THEN  GOSUB 870: PRINT : PRINT "JOUR EXCEPTIONNEL:": PRINT : HTAB 10: PRINT "LE ";DX;M$(MH);"!": GOTO 500
  52. 490  IF DX >0  THEN  PRINT : GOSUB 870: PRINT "PERIODE EXCEPTIONNELLE:": PRINT : HTAB 10: PRINT "DU ";DX;M1$;" AU ";DY;M2$;"!"
  53. 500  PRINT : PRINT :NS = QH +15: GOSUB 790: INVERSE : HTAB 15: PRINT "SOLEIL": NORMAL : PRINT : PRINT "ACTIVITE ";S$(SA);" ";SS$: IF  LEN(SC$) >1  THEN  PRINT : HTAB 10: PRINT SC$
  54. 510  IF S$(SA) = A$  AND SS$ = B$  THEN  GOSUB 870: PRINT "ACTIVITE IDENTIQUE A CELLE DE VOTRE": PRINT : PRINT "NAISSANCE,": PRINT : PRINT "DONC EXCEPTIONNELLEMENT BENEFIQUE!!!": GOTO 540
  55. 520  IF S$(SA) = A$  THEN  GOSUB 870: PRINT "MEME ACTIVITE QU'A VOTRE NAISSANCE!": PRINT : PRINT "DONC INFLUENCE SOLAIRE TRES BENEFIQUE.": GOTO 540
  56. 530  IF SS$ = B$  THEN  GOSUB 870: PRINT "MEME VARIATION QU'A VOTRE NAISSANCE!": PRINT : PRINT "DONC INFLUENCE SOLLAIRE BENEFIQUE."
  57. 540  PRINT : PRINT :MM = 1: PR# 0: HTAB 18: PRINT "UN AUTRE THEME?:";:JD = 0:JF = 0: GOSUB 760: IF R$ < >"O"  THEN  PRINT : PRINT : PRINT "ET BIEN! ";W$;" AU REVOIR": PRINT : HTAB 20: PRINT "A UNE AUTRE FOIS!": SPEED= 255: END 
  58. 560  PRINT : PRINT : PRINT "ENCORE POUR VOUS ";W$;"? ";: GOSUB 760: IF R$ = "O"  THEN T2 = 1: PRINT : GOTO 150
  59. 570 T2 = 0: PR# 0: GOTO 50
  60. 575  REM ***** S/PRGMMES
  61. 580  GOSUB 870: PRINT : PRINT "VOUS AVEZ DU VOUS TROMPER! RETAPEZ SVP:": IF ER = 1  THEN 150
  62. 590  GOTO 60
  63. 600 X = 0:Y = 0:L =  LEN(D$): IF L <3  OR L >10  THEN 580
  64. 610  FOR I = 1 TO L:TR =  ASC( MID$ (D$,I,1)): IF TR = 47  AND X = 0  AND Y = 0  THEN X = I: GOTO 630
  65. 620  IF TR = 47  AND X < >0  AND Y = 0  THEN Y = I
  66. 630  NEXT 
  67. 640  IF X = 0  OR Y = 0  OR Y > = L  THEN 580
  68. 650 J =  VAL( LEFT$(D$,X -1)):M =  VAL( MID$ (D$,X +1,Y -X)):A =  VAL( RIGHT$(D$,L -Y)):P =  ASC( RIGHT$(D$,L -Y)): IF P <48  OR P >57  THEN 620
  69. 660  IF A <100  THEN A = A +1900
  70. 670  IF M >12  OR J <1  OR M <1  OR A <1880  THEN 580
  71. 680 MX = M:AX = A: GOSUB 820: IF J >DM  THEN 580
  72. 690  RETURN 
  73. 700  SPEED= 255: FOR I = 1 TO 26: FOR W = 1 TO 50: NEXT : HTAB (38 * RND(1) +1): PRINT H$(1 + SGN(.5 - RND(1))): NEXT : SPEED= 120: VTAB 8: RETURN 
  74. 710 G = A:D = M +1: IF M <3  THEN G = A -1:D = M +13
  75. 720 N =  INT(365.25 *G) + INT(30.6 *D) +J +5: RETURN 
  76. 730  FOR W = 1 TO 1000: NEXT : RETURN 
  77. 740  HPLOT X,Y -5 TO X +3,Y +4 TO X -4,Y -2 TO X +4,Y -2 TO X -3,Y +4 TO X,Y -5: RETURN 
  78. 750 X =  RND(1) *279:Y =  RND(1) *159:U =  INT(Y -YO) ^2 + INT(X -XO) ^2: RETURN 
  79. 760  INVERSE : PRINT "O";: NORMAL : PRINT " OU ";: INVERSE : PRINT "N";: NORMAL : GET R$: RETURN 
  80. 770  DATA "DIMANCHE","MINIMALE","LUNDI","TRESSFAIBLE","MARDI","FAIBLE","MERCREDI","MOYENNE","JEUDI","FORTE","VENDREDI","TRES FORTE","SAMEDI","MAXIMALE","CAPRICORNE"," JANVIER","VERSEAU"," FEVRIER","POISSONS"," MARS","BELIER"," AVRIL"
  81. 780  DATA "TAUREAU"," MAI","GEMEAUX"," JUIN","CANCER"," JUILLET","LION"," AOUT","VIERGE"," SEPTEMBRE","BALANCE"," OCTOBRE","SCORPION"," NOVEMBRE","SAGITTAIRE"," DECEMBRE"
  82. 790 SA = .07 + INT(7 * ABS( SIN(NS *PS))):SS =  SGN( SIN(NS *PS *2)):RE = 6 *SA +12:ST = .7/SA:SS$ = ",CROISSANTE": IF SS <0  THEN SS$ = ",DECROISSANTE"
  83. 800 SC$ = "": IF SA <1  THEN SC$ = "'SOLEIL CALME'"
  84. 810  RETURN 
  85. 820 DM = 31: IF MX = 2  THEN DM = 28: IF AX < >1900  AND AX/4 - INT(AX/4) = 0  THEN DM = 29
  86. 830  IF MX = 4  OR MX = 6  OR MX = 9  OR MX = 11  THEN DM = 30
  87. 840  RETURN 
  88. 850  FOR I = 1 TO DM:H = 1 + SGN( SIN((QA +I) *P)): HTAB (I +8): PRINT H$(H);:X(I) = X(I) +H: NEXT : RETURN 
  89. 860  HTAB (39 * RND(1) +1): VTAB (23 * RND(1) +1): RETURN 
  90. 870  PRINT  CHR$(7); CHR$(7); CHR$(7): RETURN 
  91. 880  REM ---> HELIOSELENE <--- 
  92. 896  REM ***********************
  93. 900  REM * PUB. IN PARIS IN    *
  94. 902  REM L'ORDINATEUR INDIVIDUEL
  95. 904  REM *NO.38 JUIN-JUILLET 82*
  96. 906  REM * RETYPED BY C.WALKER *
  97. 908  REM *      DEC. 1982      *
  98. 914  REM ***********************